
import Mock, { mock } from "mockjs";
// var Mock = require('mockjs')
var Random = Mock.Random;

//用户信息
const usersinfo = {
  "data|10": [
    {
      "id|+1": 9568, //商品id
      nickname: "@first()", //所属人
      token: "@guid()",
      email: "",
      phone: "",
      image: Random.image("100x100", "#FF6600"), //图片
      time: '@datetime("2022-MM-dd A HH:mm:ss")',
    },
    {
      id: 9567, //商品id
      nickname: "aaddd", //所属人
      token: "@guid()",
      email: "12345678911@163.com",
      phone: "12345678911",
      image: Random.image("100x100", "#FF6600"), //图片
      time: '@datetime("2022-MM-dd A HH:mm:ss")',
    },
  ],
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//验证注册手机号
const registerPhone = {
  code: "200",
  message: "手机号未注册",
};
const registerPhoneNull = {
  code: "1005",
  message: "手机号已注册",
};
//注册手机号接口
Mock.mock("/registerphone", "post", (config) => {
  const phone = JSON.parse(config.body).phonenumber;
  if (phone === "11111111111") {
    return registerPhoneNull;
  } else {
    return registerPhone;
  }
});
//注册手机号验证码
const phoneMessage = {
  code: "200",
  message: "10086",
};
const phoneMessageNull = {
  code: "1005",
  message: "验证码输入错误",
};
//发送验证码端口
Mock.mock("/registerphonemessage", "get", () => {
  return phoneMessage;
});
const phoneMessageok = {
  code: "200",
  message: "验证成功",
};
//验证验证码
Mock.mock("/registercheckmessage", "post", (config) => {
  const message = JSON.parse(config.body).message;
  if (message === "10086") {
    return phoneMessageok;
  } else {
    return phoneMessageNull;
  }
});
//注册密码
const registerPassword = {
  code: "200",
  message: "注册成功请登录",
};
const registerPasswordNull = {
  code: "1005",
  message: "服务器异常",
};
//验证密码
Mock.mock("/registerpassword", "post", (config) => {
  const password = JSON.parse(config.body).password;
  if (password === "11111111111") {
    return registerPasswordNull;
  }

  return registerPassword;
});

////////////////////////////////////////////////////////////////////
//登录 返回 的token
const userinfoNull = {
  message: "登录失败",
};
const userinfo = [
  {
    id: 9567, //商品id
    nickname: "aaddd", //所属人
    token: Random.guid(),
    email: "12345678911@163.com",
    phone: "12345678911",
    image: Random.image("50x50", "#FF6600"), //图片
    time: Random.now(),
  },
];
//登录
Mock.mock("/login", "post", (config) => {
  const phone = JSON.parse(config.body).phonenumber;
  const password = JSON.parse(config.body).password;
  if (phone === "11111111111") {
    return {
      code: 1005,
      userinfoNull,
    };
  } else if(phone === 'admin' && password === '123456') {
    return {
      code: 200,
      userinfo,
    };
  }else{
    return {
      code: 1005,
      userinfoNull,
    };
  }
});

// 用户信息  get
Mock.mock("/userlist", "get", () => {
  return {
    code: "200",
    userinfo,
  };
});

//修改用户信息
Mock.mock("/setuserlist", "post", (config) => {
  userinfo.splice(0, 1, JSON.parse(config.body));
  return {
    code: "200",
    userinfo,
  };
});
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//商品的信息
const data = Mock.mock({
  "data|100": [
    {
      "id|+1": 0, //商品id
      nickname: "@first()", //所属人
      "asidekind|1": [
        "户外体育",
        "书籍资料",
        "电子设备",
        "生活常用",
        "厨房用品",
        "生活电器",
        "休闲体育",
      ],
      kind: "@csentence(5)",
      "price|1-100": 100, //物品价格，
      "nums|1-20": 20,
      image: Random.image("100x100", "#FF6600"), //图片
      imageBig1: Random.image("300x300", "#4A7BF7"), //图片
      imageBig2: Random.image("300x300", "#50B347"), //图片
      desc: Random.cparagraph(),
      time: '@datetime("2022-MM-dd A HH:mm:ss")',
    },
  ],
});

// prolist  get
Mock.mock("/prolist", "get", () => {
  return data;
});
//端口添加商品
Mock.mock("/addpro", "post", (config) => {
  //是json格式需要解析
  data.data.push(JSON.parse(config.body));
  return data;
});
//搜索端口
Mock.mock("/search", "post", (config) => {
  //是json格式需要解析
  const sea = JSON.parse(config.body);
  const newArr = data.data.filter((item) => {
    return item.asidekind.includes(sea.data);
  });
  return {
    data: newArr,
  };
});
//商品详细页
Mock.mock("/register", "post", (config) => {
  //是json格式需要解析
  // data.data.splice(JSON.parse(config.body), 1);
  const newData = data.data.filter((item) => {
    return item.id === (JSON.parse(config.body));
  });
  return newData;
});
//添加到购物车
Mock.mock("/carlist", "post", (config) => {
  //是json格式需要解析
  return data.data.splice(JSON.parse(config.body), 1);
});
//端口删除商品
Mock.mock("/deltpro", "post", (config) => {
  //是json格式需要解析
  data.data.splice(JSON.parse(config.body), 1);
  return data;
});

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//分类
const asidekind = [
  {
    name: "户外体育",
    id: 0,
  },
  {
    name: "书籍资料",
    id: 1,
  },
  {
    name: "生活常用",
    id: 2,
  },
  {
    name: "厨房用品",
    id: 3,
  },
  {
    name: "生活电器",
    id: 4,
  },
  
];
Mock.mock("/deltpro", "post", (config) => {
  //是json格式需要解析
  // data.data.splice(JSON.parse(config.body), 1);
  return asidekind;
});
const kind = Mock.mock({
  kindlist: [
    {
      "data|5": ["@csentence(4)"],
    },
    {
      "data|5": ["@csentence(4)"],
    },
    {
      "data|5": ["@csentence(4)"],
    },
    {
      "data|5": ["@csentence(4)"],
    },
    {
      "data|5": ["@csentence(4)"],
    },
  ],
});
const kinddown = Mock.mock({
  kinddown: [
    {
      "data|5": [{ name: "@csentence(4)", "id|+1": 0 }],
    },
    {
      "data|5": [{ name: "@csentence(4)", "id|+1": 0 }],
    },
    {
      "data|5": [{ name: "@csentence(4)", "id|+1": 0 }],
    },
    {
      "data|5": [{ name: "@csentence(4)", "id|+1": 0 }],
    },
    {
      "data|5": [{ name: "@csentence(4)", "id|+1": 0 }],
    },
  ],

});
Mock.mock("/deltlist", "post", (config) => {
  //是json格式需要解析
  // data.data.splice(JSON.parse(config.body), 1);
  return kind.kindlist[JSON.parse(config.body).categoryid];
});
Mock.mock("/kinddown", "post", (config) => {
  return kinddown.kinddown[JSON.parse(config.body).brand];
});

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//收藏夹端口
//收藏夹
const favoriteslist = Mock.mock({
  "data|10": [
    {
      "id|+1": 0, //商品id
      nickname: "@first()", //所属人
      "asidekind|1": [
        "户外体育",
        "书籍资料",
        "电子设备",
        "生活常用",
        "厨房用品",
        "生活电器",
        "休闲体育",
      ],
      kind: "@csentence(5)",
      "price|1-20": 100, //物品数量
      image: Random.image("100x100", "#FF6600"), //图片
      imageBig1: Random.image("300x300", "#4A7BF7"), //图片
      imageBig2: Random.image("300x300", "#50B347"), //图片
      desc: Random.cparagraph(),
      num: 1,
      title: "@csentence(4)",
      time: '@datetime("2022-MM-dd A HH:mm:ss")',
    },
  ],
});

//发送请求默认收藏夹的数据
Mock.mock("/favoriteslist", "post", (config) => {
  //是json格式需要解析
  return favoriteslist;
});

const favoritesmylist = Mock.mock({
  "data|10": [
    {
      "id|+1": 0, //商品id
      nickname: "@first()", //所属人
      "asidekind|1": [
        "户外体育",
        "书籍资料",
        "电子设备",
        "生活常用",
        "厨房用品",
        "生活电器",
        "休闲体育",
      ], //左边分类
      kind: "@csentence(3)", //右边分类
      "price|1-100": 100, //物品数量
      image: Random.image("100x100", "#FF6600"), //图片
      imageBig1: Random.image("300x300", "#4A7BF7"), //图片
      imageBig2: Random.image("300x300", "#50B347"), //图片
      desc: "aaaa" + Random.cparagraph(),
      title: "@csentence(4)",
      time: '@datetime("2022-MM-dd A HH:mm:ss")',
    },
  ],
});

//发送请求我的收藏夹的数据
Mock.mock("/favoritesmylist", "post", (config) => {
  //是json格式需要解析
  return favoritesmylist;
});

//发送请求删除数据
Mock.mock("/removefavoriteslist", "post", (config) => {
  //是json格式需要解析
  favoriteslist.data = favoriteslist.data.filter((item) => {
    return item.id !== JSON.parse(config.body).id;
  });

  return favoriteslist;
});

Mock.mock("/removemyfavoriteslist", "post", (config) => {
  //是json格式需要解析
  favoritesmylist.data = favoritesmylist.data.filter((item) => {
    return item.id !== JSON.parse(config.body).id;
  });

  return favoritesmylist;
});

//默认发送请求移动数据
Mock.mock("/tomyfavoriteslist", "post", (config) => {
  //是json格式需要解析
  favoriteslist.data.splice(JSON.parse(config.body), 1);
  favoritesmylist.data.push(JSON.parse(config.body).data);
  return favoriteslist;
});

//我的发送请求移动数据
Mock.mock("/tofavoriteslist", "post", (config) => {
  favoritesmylist.data.splice(JSON.parse(config.body), 1);

  favoriteslist.data.push(JSON.parse(config.body).data);
  return favoriteslist;
});

//创建新的收藏夹
Mock.mock("/addfavoriteslist", "post", (config) => {
  let name = JSON.parse(config.body).name;
  // let list = [];
  // name = list;

  return { code: "200", name: [{ text: name, value: 0 }] };
});

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//设置用户地址
const list = Mock.mock({
  "data|3": [
    {
      "id|+1": 0, //商品id
      index: 9567,
      name: "张三",
      tel: "1111111111111",
      address: "北京市 昌平区 北京科技学院 千锋教育",
      isDefault: true,
    },
  
  ],
});

//发送请求获取地址数据
Mock.mock("/postuserlist", "post", (config) => {
  return list;
});

//发送修改地址数据
Mock.mock("/postsetuserlist", "post", (config) => {
  list.data.splice(JSON.parse(config.body).i.id - 0, 1, JSON.parse(config.body).i);
  return { code: "200", list };
});

//删除地址数据
Mock.mock("/postdeleteuserlist", "post", (config) => {
  //是json格式需要解析
  list.data.splice(JSON.parse(config.body).id-0,1);

  return { code: "200", list };
});

//发送添加用户地址
Mock.mock("/adduserlist", "post", (config) => {
  list.data.push(JSON.parse(config.body).i);
  return { code: "200", list };
});

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//回收处理

const recoverylist = Mock.mock({
  "data|10": [
    {
      "id|+1": 0, //商品id
      nickname: "@first()", //
      "asidekind|1": [
        "户外体育",
        "书籍资料",
        "电子设备",
        "生活常用",
        "厨房用品",
        "生活电器",
        "休闲体育",
      ],
      "price|1-100": 100,
      num: 1,
      image: Random.image("100x100", "#FF6600"), //图片
      imageBig1: Random.image("300x300", "#4A7BF7"), //图片
      imageBig2: Random.image("300x300", "#50B347"), //图片
      desc: Random.cparagraph(),
      phopne: "111111111111",
      address: "@csentence(12)",
      getgoodtime: '@datetime("2022-MM-dd A HH:mm:ss")',
    },
  ],
});
//删除回收列表
Mock.mock("/deleterecoverylist", "post", (config) => {
  //是json格式需要解析
  recoverylist.data = recoverylist.data.filter((item) => {
    return item.id !== JSON.parse(config.body).id;
  });

  return recoverylist;
});

// 用户id获取回收列表
Mock.mock("/recoverylist", "post", (config) => {
  //是json格式需要解析
  return recoverylist;
});

//获取对应商品的信息
Mock.mock("/recoverygoodslist", "post", (config) => {
  //是json格式需要解析

  const newrecoveryList = recoverylist.data.filter((item) => {
    return item.id === JSON.parse(config.body).id - 0;
  });
  return newrecoveryList;
});
//修改id对应的商品列表
Mock.mock("/setrecoverygoodslist", "post", (config) => {
  //是json格式需要解析
  recoverylist.data.splice(
    JSON.parse(config.body).id - 0,
    1,
    JSON.parse(config.body).list[0]
  );

  return recoverylist.data;
});

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//寄卖商品
const salelist = Mock.mock({
  "data|10": [
    {
      "id|+1": 0, //商品id
      nickname: "@first()", //
      "asidekind|1": [
        "户外体育",
        "书籍资料",
        "电子设备",
        "生活常用",
        "厨房用品",
        "生活电器",
        "休闲体育",
      ],
      "price|1-100": 100,
      num: 1,
      image: Random.image("100x100", "#FF6600"), //图片
      imageBig1: Random.image("300x300", "#4A7BF7"), //图片
      imageBig2: Random.image("300x300", "#50B347"), //图片
      desc: Random.cparagraph(),
      phopne: "111111111111",
      address: "@csentence(10)",
      getgoodtime: '@datetime("2022-MM-dd A HH:mm:ss")',
    },
  ],
});

//寄卖列表
Mock.mock("/salelist", "post", (config) => {
  //是json格式需要解析
  return salelist;
});

//删除寄卖寄卖列表商品列表
Mock.mock("/deletesalelist", "post", (config) => {
  //是json格式需要解析
  //是json格式需要解析
  salelist.data = salelist.data.filter((item) => {
    return item.id !== JSON.parse(config.body).id;
  });

  return salelist;
});

//获取寄卖寄卖列表商品列表
Mock.mock("/salegoodslist", "post", (config) => {
  //是json格式需要解析

  const newsalelist = salelist.data.filter((item) => {
    return item.id === JSON.parse(config.body).id - 0;
  });
  return newsalelist;
});

//修改id对应的寄卖列表商品列表
Mock.mock("/setsalegoodslist", "post", (config) => {
  //是json格式需要解析
  salelist.data.splice(
    JSON.parse(config.body).id - 0,
    1,
    JSON.parse(config.body).list[0]
  );

  return salelist.data;
});


// 信息列表
let currentId = 1;
const message_list = Mock.mock({
  'list|100':[
    {
      'id': () => {
        const id = currentId;
        currentId++;
        return id;
      },               // 随机生成1-100之间的整数作为id
      'title': '@ctitle(5,10)',    // 随机生成5-10个中文字符作为标题
      'state|0-1': 0,              // 随机生成0-1之间的整数作为状态
      'startTime': '@datetime',    // 随机生成一个日期时间字符串作为开始时间
      'endTime': '@datetime',      // 随机生成一个日期时间字符串作为结束时间
      'fileList|3-5': [            // 随机生成3-5个文件列表项
        {
          'uid': '@guid',
          'status': 'done',
          'name': '@word(5)',      // 随机生成一个由5个字符组成的单词作为文件名
          'url': 'https://signtool.wnqapp.com/pay/p12zs6.png',           // 随机生成一个URL作为文件链接
        }
      ],
      'content': '@cparagraph',     // 随机生成一段中文文本作为内容
    }
  ]
});


// 获取活动消息
Mock.mock("/activity_message_list", "post", (config) => {
  //是json格式需要解析
  // const newsalelist = message_list.data.filter((item) => {
  //   return item.id === JSON.parse(config.body).id - 0;
  // });
  // return newsalelist;
  // 根据筛选条件进行过滤
  const page = parseInt(JSON.parse(config.body).page, 10) || 1;
  const pageSize = parseInt(JSON.parse(config.body).pageSize, 10) || 10;

  // 分页处理
  const totalCount = message_list.list.length;
  const totalPages = Math.ceil(totalCount / pageSize);
  let filteredDatas_1 =  JSON.parse(JSON.stringify(message_list))
  let filteredData = filteredDatas_1.list.slice((page - 1) * pageSize, page * pageSize);

  return {
    list: filteredData,
    code: 200,
    page: page,
    pageSize: pageSize,
    totalCount: totalCount,
    totalPages: totalPages
  };
});



export default Mock;